package cn.kennylee.codehub.feign.interceptor.caller.remote.interceptors;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;
import java.util.Map;

/**
 * <p>Feign上下文类</p>
 * <p>Created on 2025/8/15.</p>
 *
 * @author kennylee
 * @since 0.0.1
 */
@Getter
@Setter
@ToString
public class CustomFeignContext {

    /**
     * 是否转发请求头部
     * <p>默认开启</p>
     */
    private boolean isForwardHeaders = true;

    /**
     * 是否调用时一次清除请求头部
     * <p>默认开启，否则，需要自己管理 FeignContextHolder#clear() 的时机</p>
     */
    private boolean isClearAtOnce = true;

    /**
     * 添加阻塞头部，配置则不转发
     */
    private List<String> blockHeaders = CollUtil.newArrayList();

    /**
     * 添加自定义头部 ## 覆盖原有request头部
     */
    private Map<String, String> headers = MapUtil.newHashMap();
}
